﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace FrontEndPlus.Módulos.Administración
{
    public partial class wbfrm_Busca_Producto : System.Web.UI.Page
    {
        #region Variables
        private WCF_Gimnasio.cls_Facturar _facturar = new WCF_Gimnasio.cls_Facturar();
        private WCF_Gimnasio.cls_Producto _producto = new WCF_Gimnasio.cls_Producto();
        private WCF_Gimnasio.ServiceClient _servicio = new WCF_Gimnasio.ServiceClient();
        #endregion

        #region Metodos
        private void CargarProductos()
        {
            _facturar.IdUsuarioInicioSeccion = Convert.ToInt32(HttpContext.Current.Session["idUsuario"].ToString());
            gv_productos.DataSource = _servicio.Listar(3, _facturar);
            gv_productos.DataBind();
            _servicio.Close();
            if (gv_productos.Rows.Count <= 0)
                lbl_mensaje.Text = "NO HAY PRODUCTOS DISPONIBLES";
            else
                lbl_mensaje.Text = string.Empty;

        }
        private void retornaDatos(int fila)
        {
            if (fila > -1)
            {
                string codcliente = Request.QueryString["idCliente"];
                string cedclient = Request.QueryString["cedCliente"];
                string nomclient = Request.QueryString["nomCliente"];
                string apelliclient = Request.QueryString["apeCliente"];
                string id_producto = gv_productos.Rows[fila].Cells[0].Text;
                string codigo = gv_productos.Rows[fila].Cells[1].Text;
                string nombre = gv_productos.Rows[fila].Cells[2].Text;             
                Response.Redirect("wbfrm_Facturacion_Matricula.aspx?&idProd=" 
                    + id_producto 
                    + "&codProd=" 
                    + codigo 
                    + "&nomProd=" 
                    + nombre
                    + "&idCliente="
                    + codcliente
                    + "&cedCliente="
                    + cedclient
                    + "&nomCliente="
                    + nomclient
                    + "&apeCliente="
                    + apelliclient);
            }
        }
        private void filtraProductos(string filtro)
        {
            try
            {
                _facturar.IdUsuarioInicioSeccion = 6;//Convert.ToInt32(HttpContext.Current.Session["idUsuario"].ToString());             
                string[] arreglo = new string[2];
                arreglo[0] = "0";
                arreglo[1] = filtro;
                _facturar.Filtros = arreglo;
                gv_productos.DataSource = _servicio.Listar(6, _facturar);
                gv_productos.DataBind();
                _servicio.Close();
                if (gv_productos.Rows.Count <= 0)
                    lbl_mensaje.Text = "NO HAY PRODUCTOS CON LOS DATOS SUMINISTRADOS";
                else
                    lbl_mensaje.Text = string.Empty;
            }
            catch (Exception ex) { Response.Write(ex.Message); }
        }
        #endregion
        #region Eventos
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                this.CargarProductos();

            }
        }

        protected void b_volver_Click(object sender, EventArgs e)
        {

            string codcliente = Request.QueryString["idCliente"];
            string cedclient = Request.QueryString["cedCliente"];
            string nomclient = Request.QueryString["nomCliente"];
            string apelliclient = Request.QueryString["apeCliente"];
            Response.Redirect("wbfrm_Facturacion_Matricula.aspx?&idCliente="
                   + codcliente
                   + "&cedCliente="
                   + cedclient
                   + "&nomCliente="
                   + nomclient
                   + "&apeCliente="
                   + apelliclient);
        }     
        #endregion

        protected void txt_nombre_TextChanged(object sender, EventArgs e)
        {
            if (txt_nombre.Text != string.Empty)
                this.filtraProductos(txt_nombre.Text);
            else
                this.CargarProductos();
        }

        protected void gv_productos_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (gv_productos.Rows.Count != 0)
            {
                if (e.CommandName == "Seleccionar" || e.CommandName == "Select")
                {
                    int fila = Convert.ToInt32(e.CommandArgument);
                    this.retornaDatos(fila);
                }
            }
            
        }

        protected void gv_productos_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gv_productos.PageIndex = e.NewPageIndex;
            this.CargarProductos();
        }
    }
}